import { IPSAppDEAction } from '../../app/dataentity/ipsapp-deaction';
import { IPSAppDEDataSet } from '../../app/dataentity/ipsapp-dedata-set';
import { IPSAppDEField } from '../../app/dataentity/ipsapp-defield';
import { IPSAppViewUIAction } from '../../app/view/ipsapp-view-uiaction';
import { IPSDECalendarItem } from './ipsdecalendar-item';
import { IPSDEOPPriv } from '../../dataentity/priv/ipsdeoppriv';
import { IPSSysPFPlugin } from '../../res/ipssys-pfplugin';
import { IPSUIAction } from '../../view/ipsuiaction';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSSysCalendarItem
 */
export interface IPSSysCalendarItem extends IPSDECalendarItem {
  /**
   * 背景颜色应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getBKColorPSAppDEField(): IPSAppDEField | null;

  /**
   * 背景颜色应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get bKColorPSAppDEField(): IPSAppDEField | null;

  /**
   * 背景颜色应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getBKColorPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 开始时间应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getBeginTimePSAppDEField(): IPSAppDEField | null;

  /**
   * 开始时间应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get beginTimePSAppDEField(): IPSAppDEField | null;

  /**
   * 开始时间应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getBeginTimePSAppDEFieldMust(): IPSAppDEField;

  /**
   * 项样式表值应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getClsPSAppDEField(): IPSAppDEField | null;

  /**
   * 项样式表值应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get clsPSAppDEField(): IPSAppDEField | null;

  /**
   * 项样式表值应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getClsPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 文本颜色应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getColorPSAppDEField(): IPSAppDEField | null;

  /**
   * 文本颜色应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get colorPSAppDEField(): IPSAppDEField | null;

  /**
   * 文本颜色应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getColorPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 内容应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getContentPSAppDEField(): IPSAppDEField | null;

  /**
   * 内容应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get contentPSAppDEField(): IPSAppDEField | null;

  /**
   * 内容应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getContentPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 建立数据应用实体行为
   *
   * @type {IPSAppDEAction}
   */
  getCreatePSAppDEAction(): IPSAppDEAction | null;

  /**
   * 建立数据应用实体行为
   *
   * @type {IPSAppDEAction}
   */
  get createPSAppDEAction(): IPSAppDEAction | null;

  /**
   * 建立数据应用实体行为（必须存在）
   *
   * @type {IPSAppDEAction}
   */
  getCreatePSAppDEActionMust(): IPSAppDEAction;

  /**
   * 建立要求操作标识
   *
   * @type {IPSDEOPPriv}
   */
  getCreatePSDEOPPriv(): IPSDEOPPriv | null;

  /**
   * 建立要求操作标识
   *
   * @type {IPSDEOPPriv}
   */
  get createPSDEOPPriv(): IPSDEOPPriv | null;

  /**
   * 建立要求操作标识（必须存在）
   *
   * @type {IPSDEOPPriv}
   */
  getCreatePSDEOPPrivMust(): IPSDEOPPriv;

  /**
   * 日历项默认行为
   *
   * @type {IPSAppViewUIAction}
   */
  getDefaultPSUIAction(): IPSAppViewUIAction | null;

  /**
   * 日历项默认行为
   *
   * @type {IPSAppViewUIAction}
   */
  get defaultPSUIAction(): IPSAppViewUIAction | null;

  /**
   * 日历项默认行为（必须存在）
   *
   * @type {IPSAppViewUIAction}
   */
  getDefaultPSUIActionMust(): IPSAppViewUIAction;

  /**
   * 结束时间应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getEndTimePSAppDEField(): IPSAppDEField | null;

  /**
   * 结束时间应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get endTimePSAppDEField(): IPSAppDEField | null;

  /**
   * 结束时间应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getEndTimePSAppDEFieldMust(): IPSAppDEField;

  /**
   * 项图标值应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getIconPSAppDEField(): IPSAppDEField | null;

  /**
   * 项图标值应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get iconPSAppDEField(): IPSAppDEField | null;

  /**
   * 项图标值应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getIconPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 项标识值应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getIdPSAppDEField(): IPSAppDEField | null;

  /**
   * 项标识值应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get idPSAppDEField(): IPSAppDEField | null;

  /**
   * 项标识值应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getIdPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 级别应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getLevelPSAppDEField(): IPSAppDEField | null;

  /**
   * 级别应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get levelPSAppDEField(): IPSAppDEField | null;

  /**
   * 级别应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getLevelPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 应用实体数据集
   *
   * @type {IPSAppDEDataSet}
   */
  getPSAppDEDataSet(): IPSAppDEDataSet | null;

  /**
   * 应用实体数据集
   *
   * @type {IPSAppDEDataSet}
   */
  get psAppDEDataSet(): IPSAppDEDataSet | null;

  /**
   * 应用实体数据集（必须存在）
   *
   * @type {IPSAppDEDataSet}
   */
  getPSAppDEDataSetMust(): IPSAppDEDataSet;

  /**
   * 前端模板插件
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 前端模板插件
   *
   * @type {IPSSysPFPlugin}
   */
  get psSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 前端模板插件（必须存在）
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPluginMust(): IPSSysPFPlugin;

  /**
   * 日历项默认行为
   *
   * @type {IPSUIAction}
   */
  getPSUIAction(): IPSUIAction | null;

  /**
   * 日历项默认行为
   *
   * @type {IPSUIAction}
   */
  get psUIAction(): IPSUIAction | null;

  /**
   * 日历项默认行为（必须存在）
   *
   * @type {IPSUIAction}
   */
  getPSUIActionMust(): IPSUIAction;

  /**
   * 删除数据应用实体行为
   *
   * @type {IPSAppDEAction}
   */
  getRemovePSAppDEAction(): IPSAppDEAction | null;

  /**
   * 删除数据应用实体行为
   *
   * @type {IPSAppDEAction}
   */
  get removePSAppDEAction(): IPSAppDEAction | null;

  /**
   * 删除数据应用实体行为（必须存在）
   *
   * @type {IPSAppDEAction}
   */
  getRemovePSAppDEActionMust(): IPSAppDEAction;

  /**
   * 删除要求操作标识
   *
   * @type {IPSDEOPPriv}
   */
  getRemovePSDEOPPriv(): IPSDEOPPriv | null;

  /**
   * 删除要求操作标识
   *
   * @type {IPSDEOPPriv}
   */
  get removePSDEOPPriv(): IPSDEOPPriv | null;

  /**
   * 删除要求操作标识（必须存在）
   *
   * @type {IPSDEOPPriv}
   */
  getRemovePSDEOPPrivMust(): IPSDEOPPriv;

  /**
   * 标记值2应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getTag2PSAppDEField(): IPSAppDEField | null;

  /**
   * 标记值2应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get tag2PSAppDEField(): IPSAppDEField | null;

  /**
   * 标记值2应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getTag2PSAppDEFieldMust(): IPSAppDEField;

  /**
   * 标记值应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getTagPSAppDEField(): IPSAppDEField | null;

  /**
   * 标记值应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get tagPSAppDEField(): IPSAppDEField | null;

  /**
   * 标记值应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getTagPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 项文本值应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getTextPSAppDEField(): IPSAppDEField | null;

  /**
   * 项文本值应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get textPSAppDEField(): IPSAppDEField | null;

  /**
   * 项文本值应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getTextPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 提示应用实体属性
   *
   * @type {IPSAppDEField}
   */
  getTipsPSAppDEField(): IPSAppDEField | null;

  /**
   * 提示应用实体属性
   *
   * @type {IPSAppDEField}
   */
  get tipsPSAppDEField(): IPSAppDEField | null;

  /**
   * 提示应用实体属性（必须存在）
   *
   * @type {IPSAppDEField}
   */
  getTipsPSAppDEFieldMust(): IPSAppDEField;

  /**
   * 更新数据应用实体行为
   *
   * @type {IPSAppDEAction}
   */
  getUpdatePSAppDEAction(): IPSAppDEAction | null;

  /**
   * 更新数据应用实体行为
   *
   * @type {IPSAppDEAction}
   */
  get updatePSAppDEAction(): IPSAppDEAction | null;

  /**
   * 更新数据应用实体行为（必须存在）
   *
   * @type {IPSAppDEAction}
   */
  getUpdatePSAppDEActionMust(): IPSAppDEAction;

  /**
   * 更新要求操作标识
   *
   * @type {IPSDEOPPriv}
   */
  getUpdatePSDEOPPriv(): IPSDEOPPriv | null;

  /**
   * 更新要求操作标识
   *
   * @type {IPSDEOPPriv}
   */
  get updatePSDEOPPriv(): IPSDEOPPriv | null;

  /**
   * 更新要求操作标识（必须存在）
   *
   * @type {IPSDEOPPriv}
   */
  getUpdatePSDEOPPrivMust(): IPSDEOPPriv;
}
